package com.onesports.intelligent.k12.polarlight.domain.vo.course;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.ibatis.type.ArrayTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.io.Serializable;
import java.sql.Time;
import java.util.Date;
import java.util.List;


/**
 * 课表时段明细表
 *
 * @author
 * @since 1.0.0 2022-07-08
 */
@Data
@ApiModel(value = "课表时段明细VO")
public class  CourseScheduleDetailVO {
    private static final long serialVersionUID = 1L;


    @ApiModelProperty(value = "时段明细id")
    private String id;

    @ApiModelProperty(value = "课表id")
    private String scheduleId;

    @ApiModelProperty(value = "课程开设时间id")
    private String courseOpenId;

    @ApiModelProperty(value = "课程日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date courseDate;

    @ApiModelProperty(value = "星期code")
    private String weekCode;

    @ApiModelProperty(value = "状态1：未拼班   2：待考勤   3：考勤中 4：已考勤  5：作废")
    private String status;

    @ApiModelProperty(value = "节次code")
    private String sectionCode;

    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "HH:mm")
    private Date startTime;

    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "HH:mm")
    private Date endTime;

    @ApiModelProperty(value = "教练id集合")
    @TableField(value = "coach_ids", typeHandler = ArrayTypeHandler.class, jdbcType = JdbcType.ARRAY)
    private List<String> coachIds;

    @ApiModelProperty(value = "教练名称集合(状态为未拼班时教练取这个)")
    @TableField(value = "coach_ids", typeHandler = ArrayTypeHandler.class, jdbcType = JdbcType.ARRAY)
    private List<String> coachName;

    @ApiModelProperty("课表每个格子的信息")
    private List<SpellClassInfoVO> infos;

    @ApiModelProperty("应到人数")
    private Integer dueNum;

    @ApiModelProperty("签到人数")
    private Integer actualNum;

    @ApiModelProperty("未到人数")
    private Integer absentNum;

    @ApiModelProperty("请假人数")
    private Integer leaveNum;

    @ApiModelProperty("课程名称")
    private String courseName;

}
